Skip to content

Conversation

@pull
Copy link

@pull pull bot commented May 10, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label May 10, 2022
@squash-labs
Copy link

squash-labs bot commented Feb 14, 2023

Manage this branch in Squash

Test this branch here: https://master-n02a3.squash.io

pekkaklarck and others added 28 commits April 2, 2025 12:22
Earlier `TypeInfo.get_converter` (and `TypeInfo.convert` that uses it)
raised a TypeError if there was no converter for the type itself, but
didn't care about possible nested unknown converters. Now handling
unknown types is configurable:

- If `allow_unknown` is False (default), a TypeError is raised if the
  type itself or any of its nested types have no converter. This makes
  it easy to reject types like `list[Unknown]`, which is something we
  want to do in variable conversion (#3278).

- If `allow_unknown` is True, a special `UnknownConverter` is returned
  and its `convert` returns the original value as-is.

These changes required adapting the argument conversion logic to avoid
changes affecting corner cases like `arg: Unknown = None`.
- Fix problem if variabe name contains characters also in the keyword
  name. This typically occurs only with embedded arguments. Fixes #5330.

- Fix using embedded arguments that use custom patterns with variables
  using inline Python evaluation syntax. Fixes #5394.

- Add tests for using embedded arguments with variables and other
  content. This unfortunately doesn't work if embedded arguments use
  custom patterns (#5396).

Above problems were fixed by replacing variables with placeholders before
matching keywords and then replacing placeholders with original variables
afterwards. With custom patterns also automatically added pattern that
matched variables (and failed to match the inline evaluation syntax)
needed to be updated to match the placeholder instead.
- Remove dead code.
- Fix language.
…uages-in-help

Feat: libdoc dynamic languages in help
Avoid conflict with Python's standard exception with the same name.

Related to #5377.
This is related to #5393. Problems were discovered when unit tests
didn't succeed on Python 3.8. Investigation reveladed this:

1. Python 3.8 doesn't have Annotated that was used in a test that
   validated the fix for #5393.

2. Annotated can be imported from typing_extensions in tests, but
   it turned out that Python 3.8 get_origin and get_args don't handle
   it properly so test continued to fail.

3. A fix for the above was trying to import also get_origin and get_args
   from typing_extensions on Python 3.8. That fixed the provious problem,
   but string representation was still off.

4. It turned out that our type_name and type_repr didn't handle Annotated
   and TypeRef properly. Most likely the same issue occurred also with
   other parameterized special forms.
Don't remove existing SUITE scope variables with same name.

Fixes #5399.
`Process.run_process` signature will change as part of #5412. Better
to use a custom library in Libdoc tests instead.
See issue #3278. User Guide documentation still missing and some cleanup to be done.
- Enhance error reporting with embedded args having invalid type.
- Consistent test case naming style.
- Some code cleanup.

Part of #3278.
Consistently use `${tc[0, 1]}` style for accessing keywords, messages,
etc. Avoid `${tc.body[0]}` and `${tc.body[0][1]}`.
pekkaklarck and others added 30 commits October 2, 2025 12:36
…5501)

Fix #5500, reset _loop_ref to None so that it can be reinitialized in the next suite run
Most importantly, verify that `robot.run` can be executed multiple
times with async keywords. See issue #5500.
These keywords got the Secret support:

- Create File
- Append to File
- Set Environment Variable
- Append to Environment Variable

Part of #5512.
Most importantly, fix a bug that `Set/Append Environment Variable`
logged secret values. Other changes mostly enhancements and cleanup
for tests.

Related to issue #5512 and PR #5516.
Earlier both `str()` and `repr()` returned `Secret(value=<secret>)`,
now that's only used by `repr()`.

Also enhance tests to actually validate logged value. Little cleanup
to tests as well.

This is an enhancement to #4537.
Fixes subtle problems with using ListConverter for handling Sequence
and DictionaryConverter for handling Mapping.

Fixes #5531.
- Change ListConverter to extend SequenceConverter and
  DictionaryConverter to extend MappingConverter to remove
  uplication.
- Utilize new `_string_convert` hook method in cases where
  the existing `_non_string_conver` was used to make the converted
  type more explicit.

Related to changes done as part of #5531.
Also change Python 3.14 to release version.
Part of #5373.

Also some other changes:

- Documentation enhancement. Mostly removing information that's now
  got automatically based on type hints.

- Don't support using an empty string for disabling timeouts. This
  wasn't documented anywhere and preserving the functionality would
  have required using `timedelta | Literal[""] | None` instead of
  `timedelta | None`. Documented ways to disable timeout continue to
  work.

- Use NamedTemporaryFile, not TemporaryFile, with stdin content to get
  sane file name shown in configuration.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.